﻿using System;
using System.Collections.Generic;
using System.Linq;
using Unijovem.Domain;

namespace Unijovem.UI.Models
{
    public class EnqueteModel : ModelBase<EnqueteModel, Enquete>
    {
        public DateTime DataExpiracao { get; set; }
        public DateTime DataExibicaoInicio { get; set; }
        public DateTime DataExibicaoFinal { get; set; }
        public string Pergunta { get; set; }
        public string AlternativaA { get; set; }
        public string AlternativaB { get; set; }
        public string AlternativaC { get; set; }
        public string AlternativaD { get; set; }
        
        private List<EnqueteRespostaModel> enqueteRespostas;
        public List<EnqueteRespostaModel> EnqueteRespostas
        {
            get { return enqueteRespostas; }
            set
            {
                enqueteRespostas = value;

                QuantidadeAlternativaA = value.Count(a => a.Resposta == "A");
                QuantidadeAlternativaB = value.Count(a => a.Resposta == "B");
                QuantidadeAlternativaC = value.Count(a => a.Resposta == "C");
                QuantidadeAlternativaD = value.Count(a => a.Resposta == "D");

                var totalRespostas = value.Count;
                if (totalRespostas == 0) return;

                PercentualAlternativaA = QuantidadeAlternativaA * 100 / totalRespostas;
                PercentualAlternativaB = QuantidadeAlternativaB * 100 / totalRespostas;
                PercentualAlternativaC = QuantidadeAlternativaC * 100 / totalRespostas;
                PercentualAlternativaD = QuantidadeAlternativaD * 100 / totalRespostas;
            }
        }

        public int PercentualAlternativaA { get; set; }
        public int PercentualAlternativaB { get; set; }
        public int PercentualAlternativaC { get; set; }
        public int PercentualAlternativaD { get; set; }
        public int QuantidadeAlternativaA { get; set; }
        public int QuantidadeAlternativaB { get; set; }
        public int QuantidadeAlternativaC { get; set; }
        public int QuantidadeAlternativaD { get; set; }
        public bool PessoaLogadaJaRespondeu { get; set; }
    }
}